package org.ehe.finance.voucher.domain.bo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;

import java.time.LocalDate;

/**
 * 记账凭证查询业务Bo
 * @author :zhangnn
 * @className :VoucherQueryBo
 * @description: TODO
 * @date 2025-08-25 09:30:16
 */
@Data
public class VoucherQueryBo {

    @Schema(description = "凭证号")
    private String voucherNo;

    @Schema(description = "凭证类别ID")
    private Long voucherTypeId;

    @Schema(description = "凭证日期开始")
    private LocalDate voucherDateStart;

    @Schema(description = "凭证日期结束")
    private LocalDate voucherDateEnd;

    @Schema(description = "会计期间")
    private String period;

    @Schema(description = "凭证状态:1制单,2审核,3记账,4结账")
    private Integer voucherStatus;

    @Schema(description = "来源类型:1手工录入,2系统生成")
    private Integer sourceType;

    @Schema(description = "来源单据号")
    private String sourceNo;

    @Schema(description = "创建人")
    private Long createBy;

    @Schema(description = "当前页码")
    @Min(value = 1, message = "页码必须大于0")
    private Long current = 1L;

    @Schema(description = "每页数量")
    @Min(value = 1, message = "每页数量必须大于0")
    @Max(value = 500, message = "每页数量不能超过500")
    private Long size = 10L;
}
